package com.eco.fanliapp.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.eco.fanliapp.entity.AppNewsLog;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 消息记录 数据层
 *
 * @author xiaoxx
 * @date 2019-05-14
 */
public interface AppNewsLogMapper extends BaseMapper<AppNewsLog> {
    /**
     * 查询消息记录信息
     *
     * @param tableId 消息记录ID
     * @return 消息记录信息
     */
    public AppNewsLog selectAppNewsLogById(Integer tableId);

    /**
     * 查询消息记录列表
     *
     * @param appNewsLog 消息记录信息
     * @return 消息记录集合
     */
    public List<AppNewsLog> selectAppNewsLogList(AppNewsLog appNewsLog);

    /**
     * 新增消息记录
     *
     * @param appNewsLog 消息记录信息
     * @return 结果
     */
    public int insertAppNewsLog(AppNewsLog appNewsLog);

    /**
     * 批量添加
     */
    int insertList(List<AppNewsLog> list);

    /**
     * 修改消息记录
     *
     * @param appNewsLog 消息记录信息
     * @return 结果
     */
    public int updateAppNewsLog(AppNewsLog appNewsLog);

    /**
     * 删除消息记录
     *
     * @param tableId 消息记录ID
     * @return 结果
     */
    public int deleteAppNewsLogById(Integer tableId);

    /**
     * 批量删除消息记录
     *
     * @param tableIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteAppNewsLogByIds(String[] tableIds);

    /**
     * @param userId
     * @param start
     * @param back
     * @return
     */
    public List<AppNewsLog> selectAppNewsLogLIMIT(@Param("userId") Long userId, @Param("start") Integer start, @Param("back") Integer back);


    /**
     * @param userId
     * @param start
     * @param back
     * @return
     */
    public List<AppNewsLog> getMessageList(@Param("userId") Long userId, @Param("start") Integer start, @Param("back") Integer back, @Param("msgType") Integer msgType);


    public Integer getNoReadMessage(@Param("userId") Long userId, @Param("msgType") String msgType);

    public Integer MessageToRead(@Param("userId") Long userId, @Param("array") String[] tableIds);

    int MessageToReadList(@Param("userId") Long userId, @Param("list") List<AppNewsLog> list);

    /**
     * @param userId
     * @return
     */
    public BigDecimal findAllowance(Long userId);

    /**
     * 查询用户邀请次数
     *
     * @param userId
     * @return
     */
    public Integer findFenSiCount(Long userId);

    /**
     * 查询团队收益
     *
     * @return
     */
    public BigDecimal findMySySum(Map<String, Object> map);

    List<AppNewsLog> selectUnreadLogs(@Param("appUserId")Long appUserId, @Param("msgType")String msgType);


    public List<AppNewsLog> findRedList(Long userId);

    public List<AppNewsLog> getRedEnvelopes(Long userId);

    int updatePressllOrderAppNewsLog(@Param("userId") Long userId, @Param("oldCommission")BigDecimal oldCommission, @Param("newCommission")BigDecimal newCommission);

    int allMessageToReadList(@Param("list") List<AppNewsLog> list);


}